<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>ES5构造函数继承</title>
</head>
<body>
  
</body>
<script>
  // 手机类
  function Phone(brand, price) {
    this.brand = brand;
    this.price = price;
  }
  // 手机类的原型属性定义一个call的方法
  Phone.prototype.call = function() {
    console.log("我可以打电话");
  }

  // 定义一个子类智能手机
  function SmartPhone(brand, price, color, size) {
    Phone.call(this, brand, price); // 通过call方法改变this值，将Phone里的this值改为SmartPhone
    this.color = color;
    this.size = size;
  }

  // 设置子级构造函数的原型
  SmartPhone.prototype = new Phone; // 继承Phone类
  SmartPhone.prototype.constructor = SmartPhone; // 做一下构造函数矫正（也可以不写）

  // 声明子类的一个方法
  SmartPhone.prototype.photo = function() {
    console.log("我可以拍照");
  }
  SmartPhone.prototype.playGame = function() {
    console.log("我可以玩游戏");
  }

  const chuizi = new SmartPhone("锤子", 2499, "黑色", "5.5inch");
  console.log(chuizi);
  console.log(chuizi.photo());
  console.log(chuizi.playGame());


</script>
</html>